package d5_regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest04 {
    public static void main(String[] args) {
        //目标: 了解使用正则表达式去文本中爬取想要的信息
        String data = "来黑马程序员学习Java，\n" +
                "电话：18512516758，18512508907\n" +
                "或者联系邮箱： boniu@itcast.cn\n" +
                "座机电话：01036517895，010-98951256\n" +
                "邮箱：bozai@itcast.cn，\n" +
                "邮箱2：dlei0009@163.com，\n" +
                "热线电话：400-618-9090 ，400-618-4000，\n" +
                "4006184000，4006189090\n";

        //需求: 从中间爬取出邮箱 手机号 座机号 400号码
        // 1、定义一个规则对象,封装要爬取的格式
        Pattern pattern = Pattern.compile(
                "(1[3-9]\\d{9})|" +
                        "(\\w{2,20}@\\w{2,20}(\\.\\w{2,20}){1,2})" +
                        "|(0\\d{2,6}-?[1-9]\\d{3,10})|(400-?618-?\\d{2,6})");
        //2、通过匹配规则对象pattern与内容data建立联系得到一个匹配器对象
        //建立联系之后,就可以用匹配对象拿着匹配规则去数据哪里爬取符合规则的数据了
        Matcher matcher = pattern.matcher(data);

        //3、使用匹配器对象,开始爬取内容。
        while (matcher.find()){
            String info = matcher.group();//一个一个取出来
            //将爬取到的内容进行输出
            System.out.println(info);
        }


    }
}
